\section {Design}
\label{Design}
In order to gauge the viability of using GPU's to accelerate Galois field arithmetic we first examined the Fast Galois Field Arithmetic Library (FGAL)~\cite{PlankPFGA}.  This library uses several variations on table lookup dependent upon the size of the field being used to achieve speed, as specified in the Section~\ref{background}. We used the insights gained from this examination to build three distinct implementations of Galois Field arithmetic. 

The first implementation was very naive.  It eschewed table lookup in favor of direct calculation. The motivation for this implementation was to measure the increases in performance obtained by using table lookup or GPUs.  Our second implementation was a direct port of the FGAL to the GPU. Finally, we implemented Galois Field Arithmetic using direct calculation on the GPU. We chose to create two GPU implementations of Galois Field Arithmetic for two reasons.  First, the table lookup method requires more memory transfer from CPU to GPU and more memory accesses on the GPU. As such, we wanted to examine the effect on performance of these design choices.  Second, we wanted to get a feel for the development time for these two implementations since ease of implementation could be an important factor in deciding whether to use GPU's to accelerate other systems programming tasks. In the next section we discuss the specifics of our three implementations.  
